import axios from 'axios';
// import {useRouter} from 'vue-router'
// const router = useRouter()
import router from '@/router/index'
const localStoreVuex = localStorage.getItem('vuex')
let token = ''
if(localStoreVuex){
    let obj = JSON.parse(localStoreVuex)
    token = obj?.token
}
// 创建一个请求配置工厂函数
function createAxiosInstance(baseURL) {
    // 创建一个axios实例
    const instance = axios.create({
        baseURL,
        timeout: 5000, // 设置超时时间，单位为毫秒
        headers: {
            'Content-Type': 'application/json',
        },
    });

    // 添加请求拦截器
    instance.interceptors.request.use(
        config => {
            // 在发送请求之前做些什么
            // 例如，在每个请求里设置token
            if (token) {
                config.headers.Authorization = `Bearer ${token}`;
            }
            return config;
        },
        error => {
            // 对请求错误做些什么
            return Promise.reject(error);
        }
    );

    // 添加响应拦截器
    instance.interceptors.response.use(
        response => {
            if(response.code === 401){
                router.push('/login')
                return Promise.reject(response.msg);
            }
            if(response.code === 200){
                // 返回响应数据中的data字段
                return response.data;
            }
        },
        error => {
            return Promise.reject(error);
        }
    );

    return instance;
}

const request = createAxiosInstance(process.env.VUE_APP_BASE_API);
export default request;

/** 使用实例
request.get('/url', {
    params: {
        page: 1,
        pageSize: 10,
    }
})
request.post('/url',{
        username: 'adming',
        password: '123456'
    }
)
 */
